package com.ev.asl.service;

import com.ev.asl.domain.AslBarCodeDO;
import com.ev.asl.domain.AslBarCodeTrayDO;
import com.ev.asl.dto.AslBarCodeParam;
import com.ev.asl.dto.AslBarCodeTrayParam;
import com.ev.framework.utils.R;

import java.util.List;
import java.util.Map;

/**
 * 条码管理Service
 * @author 姚家乐
 * @since 2021/7/6 17:18
 */
public interface AslBarCodeService {

    List<AslBarCodeDO> listJob();
    AslBarCodeTrayDO getTrayById(Long id);
    Integer countByTaryId(Long trayId);
    /**
     * 批量删除(逻辑删除)
     * @param ids 主键数组
     * @return
     */
    R batchRemove(List<Integer> ids);

    R sync();

    AslBarCodeDO get(Long id);

    List<AslBarCodeDO> list(AslBarCodeParam param);

    int updateStatus(Long trayId);

    List<AslBarCodeDO> listByIds(List<Integer> ids);


    Integer count(AslBarCodeParam param);

    int update(AslBarCodeDO aslBarCodeDO);

    int batchSave(List<AslBarCodeDO> list);

    int batchUpdate(List<AslBarCodeDO> list);

    List<AslBarCodeTrayDO> trayList(AslBarCodeTrayParam param);

    int traySave(AslBarCodeTrayDO trayDO);

    int batchDeleteTray(AslBarCodeTrayParam param);

    int batchUpdateStatus(AslBarCodeTrayParam param);

    int batchUpdateTrays(List<AslBarCodeTrayDO> aslBarCodeTrayDOs);

    List<Map<String,Object>> getCodeByUuid(List<String> headIds);


    int save (AslBarCodeDO aslBarCodeDO);

    /**
     * 查找托盘信息
     * @param trayId 托盘id
     * @param type 1-入库；2-出库
     * @return
     */
    Map<String, Object> getTray(Long trayId,Long type);

    List<Map<String, Object>> listTrays(Map<String, Object> map);

    List<Map<String, Object>> getFacilityTray(Long locationId);
}
